<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // var rg = /abc/;  只要包含abc就可以
        // 字符类：[] 表示有一系列字符可供选择，只要匹配其中一个就可以了
        var rg = /[abc]/;  // 只要包含有a 或者 含有b  或者含有c 都返回为true
        console.log(rg.test('andy'));
        console.log(rg.test('baby'));
        console.log(rg.test('color'));
        console.log(rg.test('red'));
        console.log('--------------------');
        var rg1 = /^[abc]$/; // 三选一 只有是a 或者是b 或者是c 这三个字母才返回 true
        console.log(rg1.test('aa'));
        console.log(rg1.test('a'));
        console.log(rg1.test('b'));
        console.log(rg1.test('abc'));
        console.log('---------------------------');
        var rg2 = /^[a-z]$/;  // 26个英文字母任何一个字母返回的都是 true  - 表示的是a 到 z 的范围
        console.log(rg2.test('a'));
        console.log(rg2.test('z'));
        console.log(rg2.test('1'));
        console.log('---------------------------');
        // 字符组合
        var rg3 = /^[a-zA-Z0-9]$/;  // 26个英文字母任何一个字母返回的都是 true  - 表示的是a 到 z 和 A 到 Z 和 0 到 9的范围
        console.log(rg3.test('a'));
        console.log(rg3.test('z'));
        console.log(rg3.test('A'));
        console.log(rg3.test('Z'));
        console.log(rg3.test('1'));
        console.log(rg3.test('10'));
        console.log('-----------------------');
        // 如果中括号里面有 ^ 表示取反的意思 千万和 我们边界符 ^ 混淆
        var rg4 = /^[^a-zA-Z0-9_-]$/;
        console.log(rg4.test('a'));
        console.log(rg4.test('B'));
        console.log(rg4.test('8'));
        console.log(rg4.test('_'));
        console.log(rg4.test('!'));

    </script>
</body>

</html>